home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 426-450 / disk_439 / deluxechanger / sources / dcrequest.asm < prev    next >
Assembly Source File  |  1992-05-06  |  14KB  |  779 lines

  1.  
  2.     XDEF    Request
  3.     XREF    SysRequest,_DCScrBase
  4.  
  5.     INCLUDE exec/exec_lib.i
  6.     INCLUDE intuition/intuition_lib.i
  7.     INCLUDE libraries/dos_lib.i
  8.     INCLUDE graphics/graphics_lib.i
  9.     INCLUDE help.i
  10.  
  11.     SECTION "Request",CODE
  12.  
  13. Request move.l    a0,-(sp)                        ; Zeiger auf IText merken
  14.     bsr    OpenLibs            ; Librarys öffnen
  15.     SADD    ReqWindow,a0            ; Zeiger auf Window in a0
  16.     move.l    _DCScrBase,$1e(a0)              ; Screen-Zeiger eintragen
  17.     CALLPC    _IntuitionBase,OpenWindow    ; Window öffnen
  18.     beq    NoReq                ; Fehler ? -> NoReq
  19.     move.l    d0,a1
  20.     lea    _ReqWindBase(pc),a0
  21.     move.l    a1,(a0)
  22.     move.l    $32(a1),4(a0)                   ; RastPort merken
  23.     move.l    $56(a1),8(a0)                   ; UserPort merken
  24.     PEEKL    _ReqWindRast,a0
  25.     move.l    (sp)+,a1
  26.     moveq.l #0,d0
  27.     moveq.l #10,d1
  28.     CALLSYS PrintIText
  29.     bsr    MakeRBorder
  30.     cmpi.l    #"READ",Read?
  31.     bne    BeginRead
  32.     bsr    RefreshNames
  33.     bra    WaitReq
  34. BeginRead
  35.     bra    ReadIn
  36. WaitReq PEEKL    _ReqWindUser,a0
  37.     CALLEXEC WaitPort
  38.     PEEKL    _ReqWindUser,a0
  39.     CALLSYS GetMsg
  40.     move.l    d0,a1
  41.     move.l    $14(a1),d4
  42.     move.l    $1c(a1),a4
  43.     CALLSYS ReplyMsg
  44.     cmpi.b    #$40,d4
  45.     beq.s    GadUp
  46.     cmpi.b    #$20,d4
  47.     beq.s    GadDown
  48.     bra    WaitReq
  49. GadUp    cmpi.w    #"CL",$26(a4)
  50.     beq    ReqQuit
  51.     cmpi.w    #"OK",$26(a4)
  52.     beq    ReqOK
  53.     cmpi.w    #"DC",$26(a4)
  54.     beq.s    BeginRead
  55.     cmpi.w    #"PT",$26(a4)
  56.     bne.s    NoParent
  57.     bsr    Parent
  58.     bra    BeginRead
  59. NoParent
  60.     cmpi.w    #"F0",$26(a4)
  61.     blt.s    WaitReq
  62.     cmpi.w    #"F5",$26(a4)
  63.     bgt.s    WaitReq
  64.     bsr    FileOrDir
  65.     cmpi.l    #"FILE",d7
  66.     bne    BeginRead
  67.     bra    WaitReq
  68. GadDown cmpi.w    #"PR",$26(a4)
  69.     bne    WaitReq
  70. PropAg    bsr    PropClick
  71.     cmpi.w    #$80,RProp+$c
  72.     beq    PropAg
  73.     bra    WaitReq
  74. ReqQuit bsr    EndRequest
  75. NoReq    moveq.l #0,d0
  76.     rts
  77.  
  78. ReqOK    bsr    EndRequest
  79.     bsr    JoinName
  80.     move.l    #DirFileBuffer,d0
  81.     rts
  82.  
  83. ***    Fenster schließen
  84.  
  85. EndRequest
  86.     PEEKL    _ReqWindBase,a0
  87.     CALLPC    _IntuitionBase,CloseWindow
  88.     rts
  89.  
  90. ***    Verwaltung der Devices
  91.  
  92. GetDevs CALLEXEC Forbid             ; Multitasking aus
  93.     PEEKL    _DOSBase,a0
  94.     move.l    34(a0),a0
  95.     move.l    24(a0),a0
  96.     adda.l    a0,a0
  97.     adda.l    a0,a0
  98.     move.l    4(a0),a0
  99.     adda.l    a0,a0
  100.     adda.l    a0,a0
  101. Dev1    lea    Entrys,a2
  102.     PEEKL    EntryCount,d0
  103.     mulu    #36,d0
  104.     adda.l    d0,a2
  105.     tst.l    4(a0)
  106.     bne.s    TakeDev
  107.     tst.l    8(a0)
  108.     beq.s    NoFound
  109. TakeDev move.l    4(a0),d0
  110.     addq.l    #2,d0
  111.     move.b    d0,31(a2)
  112.     move.l    $28(a0),a1
  113.     adda.l    a1,a1
  114.     adda.l    a1,a1
  115.     move.b    (a1)+,d0
  116.     subq.l    #1,d0
  117. CopyDev move.b    (a1)+,(a2)+
  118.     dbra    d0,CopyDev
  119.     move.b    #":",(a2)+
  120.     move.b    #0,(a2)
  121.     add.l    #1,EntryCount
  122. NoFound tst.l    (a0)                            ; Letzte Device ?
  123.     beq    EndDev
  124.     move.l    (a0),a0                         ; Wenn nicht dann
  125.     adda.l    a0,a0                ; nächsten Eintrag
  126.     adda.l    a0,a0                ; holen und weitersuchen
  127.     bra    Dev1
  128. EndDev    CALLSYS Permit                ; Multi an
  129.     rts
  130.  
  131. ***    Files einlesen
  132.  
  133. ReadIn    bsr    ResetAll
  134.     move.l    #DirBuffer,d1
  135.     moveq.l #-2,d2
  136.     CALLPC    _DOSBase,Lock
  137.     beq    NoLock
  138.     move.l    d0,-(sp)
  139.     move.l    (sp),d1
  140.     move.l    #FileInfo,d2
  141.     CALLSYS Examine
  142. GetName move.l    (sp),d1
  143.     move.l    #FileInfo,d2
  144.     CALLPC    _DOSBase,ExNext
  145.     beq    NoMore
  146.     lea    FileInfo+8,a0
  147.     PEEKL    EntryCount,d0
  148.     mulu    #36,d0
  149.     addi.l    #Entrys,d0
  150.     move.l    d0,a1
  151.     move.b    #0,31(a1)
  152.     tst.l    4-8(a0)
  153.     bpl    CopyName
  154.     move.l    $7c-8(a0),32(a1)                ;File-Länge merken
  155.     move.b    #1,31(a1)
  156. CopyName
  157.     move.b    (a0)+,(a1)+
  158.     cmpi.b    #0,-1(a1)
  159.     bne.s    CopyName
  160.     addi.l    #1,EntryCount
  161.     bsr    SortNames
  162.     bsr    RefreshNames
  163.     bsr    RemakeProp
  164.     bsr    PropClick
  165.     PEEKL    _ReqWindUser,a0
  166.     CALLEXEC GetMsg
  167.     tst.l    d0
  168.     beq    NoMsg
  169.     move.l    d0,a1
  170.     move.l    $14(a1),d4
  171.     move.l    $1c(a1),a4
  172.     CALLSYS ReplyMsg
  173.     cmpi.w    #"PT",$26(a4)
  174.     bne    NoRPar
  175.     move.l    (sp)+,d1
  176.     CALLPC    _DOSBase,UnLock
  177.     bsr    Parent
  178.     bra    ReadIn
  179. NoRPar    cmpi.w    #"OK",$26(a4)
  180.     bne    NoROK
  181.     move.l    (sp)+,d1
  182.     CALLPC    _DOSBase,UnLock
  183.     bra    ReqOK
  184. NoROK    cmpi.w    #"CL",$26(a4)
  185.     bne    NoRCL
  186.     move.l    (sp)+,d1
  187.     CALLPC    _DOSBase,UnLock
  188.     bra    ReqQuit
  189. NoRCL    cmpi.w    #"DC",$26(a4)
  190.     bne    NoRDC
  191.     move.l    (sp)+,d1
  192.     CALLPC    _DOSBase,UnLock
  193.     bra    ReadIn
  194. NoRDC    cmpi.w    #"F0",$26(a4)
  195.     blt    NoMsg
  196.     cmpi.w    #"F5",$26(a4)
  197.     bgt    NoMsg
  198.     bsr    FileOrDir
  199.     cmpi.l    #"FILE",d7
  200.     beq.s    NoMsg
  201.     move.l    (sp)+,d1
  202.     CALLPC    _DOSBase,UnLock
  203.     bra    ReadIn
  204. NoMsg    cmpi.l    #100,EntryCount
  205.     blt    GetName
  206.     SADD    TableFull,a0
  207.     jsr    SysRequest
  208. NoMore    POKEL    #"READ",Read?
  209.     move.l    (sp)+,d1
  210.     CALLPC    _DOSBase,UnLock
  211. NoLock    bra    WaitReq
  212.  
  213. EntryCount    ds.l    1
  214. Read?        dc.l    0
  215.  
  216. ***    Namen sortieren
  217.  
  218. SortNames
  219.     PEEKL    EntryCount,d7
  220.     cmpi.b    #2,d7
  221.     blt    NoSort
  222.     subq.l    #2,d7
  223. Sort1    moveq.l #0,d6
  224. Sort2    bsr    Compare
  225.     cmp.l    d7,d6
  226.     beq.s    Sort3
  227.     addq.l    #1,d6
  228.     bra    Sort2
  229. Sort3    dbra    d7,Sort1
  230. NoSort    rts
  231.  
  232. ***    Namen vergleichen und austauschen
  233.  
  234. Compare move.l    d6,d2
  235.     mulu    #36,d2
  236.     addi.l    #Entrys,d2
  237.     move.l    d2,a0
  238.     move.l    d2,a1
  239.     adda.l    #36,a1
  240.     move.b    31(a0),d0
  241.     move.b    31(a1),d1
  242.     cmp.b    d0,d1
  243.     blt    Swap
  244.     bgt    NoSwap
  245. Com1    move.b    (a0)+,d0
  246.     move.b    (a1)+,d1
  247.     bclr    #5,d0
  248.     bclr    #5,d1
  249.     cmp.b    d0,d1
  250.     blt    Swap
  251.     bgt    NoSwap
  252.     cmpi.b    #0,-1(a0)
  253.     beq    NoSwap
  254.     bra    Com1
  255. Swap    move.l    d2,a0
  256.     move.l    d2,a1
  257.     adda.l    #36,a1
  258.     moveq.l #36-1,d1
  259. Swap1    move.b    (a0),d0
  260.     move.b    (a1),(a0)+
  261.     move.b    d0,(a1)+
  262.     dbra    d1,Swap1
  263. NoSwap    rts
  264.  
  265. ***    Parent-Gadget angeklickt ...
  266.  
  267. Parent    lea    DirBuffer,a0
  268. ParFind0
  269.     cmpi.b    #0,(a0)+
  270.     bne.s    ParFind0
  271.     cmpi.b    #58,-2(a0)
  272.     bne.s    ParFindEnd
  273.     lea    DirBuffer,a0
  274.     bra    ParMake0
  275. ParFindEnd
  276.     suba.l    #1,a0
  277.     cmpa.l    #DirBuffer,a0
  278.     beq    ParMake0
  279.     cmpi.b    #47,(a0)
  280.     beq.s    ParMake0
  281.     cmpi.b    #58,-1(a0)
  282.     beq.s    ParMake0
  283.     bra    ParFindEnd
  284. ParMake0
  285.     move.b    #0,(a0)
  286.     bra    RefreshStrings
  287.  
  288. ***    Name angeklickt ...
  289.  
  290. FileOrDir
  291.     moveq.l #0,d7
  292.     move.w    $26(a4),d0
  293.     subi.w    #"F0",d0
  294.     mulu    #4,d0
  295.     SADD    ITextList,a0
  296.     move.l    0(a0,d0.w),a0
  297.     move.l    $c(a0),a0
  298.     cmpi.b    #0,(a0)
  299.     beq    NoEntry
  300.     cmpi.b    #0,31(a0)
  301.     beq    DirClick
  302.     cmpi.b    #1,31(a0)
  303.     bgt    DevCl
  304.     lea    FileBuffer,a1
  305. FileToBuffer
  306.     move.b    (a0)+,(a1)+
  307.     cmpi.b    #0,-1(a1)
  308.     bne.s    FileToBuffer
  309. NoEntry move.l    #"FILE",d7
  310.     bra    RefreshStrings
  311. DirClick
  312.     lea    DirBuffer,a1
  313. DirClFind0
  314.     cmpi.b    #0,(a1)+
  315.     bne.s    DirClFind0
  316.     suba.l    #1,a1
  317.     cmpa.l    #DirBuffer,a1
  318.     beq.s    DirToBuffer
  319.     cmpi.b    #58,-1(a1)
  320.     beq.s    DirToBuffer
  321.     move.b    #47,(a1)+
  322. DirToBuffer
  323.     move.b    (a0)+,(a1)+
  324.     cmpi.b    #0,-1(a1)
  325.     bne.s    DirToBuffer
  326.     bra    RefreshStrings
  327. DevCl    lea    DirBuffer,a1
  328. DevToBuffer
  329.     move.b    (a0)+,(a1)+
  330.     cmpi.b    #0,-1(a1)
  331.     bne.s    DevToBuffer
  332.     bra    RefreshStrings
  333.  
  334. ***    Alles zurücksetzen
  335.  
  336. ResetAll
  337.     SADD    RPropSpecial,a1
  338.     move.w    #0,4(a1)
  339.     POKEL    #0,EntryCount
  340.     POKEL    #0,Read?
  341.     lea    Entrys,a0
  342.     move.w    #36*100-1,d0
  343. ClearEntrys
  344.     move.b    #0,(a0)+
  345.     dbra    d0,ClearEntrys
  346.     bsr    ResetPointers
  347.     bsr    GetDevs
  348.     bsr    SortNames
  349.     bsr    RefreshNames
  350.     bsr    RemakeProp
  351.     rts
  352.  
  353. ***    Pointers zurücksetzen
  354.  
  355. ResetPointers
  356.     SADD    ITextList,a0
  357.     move.l    #Entrys,d0
  358.     moveq.l #6-1,d1
  359. ResetP1 move.l    (a0)+,a1
  360.     move.l    d0,$c(a1)
  361.     addi.l    #36,d0
  362.     dbra    d1,ResetP1
  363.     rts
  364.  
  365. ***    Proportional-Gadget angeklickt ...
  366.  
  367. PropClick
  368.     PEEKL    EntryCount,d1
  369.     cmpi.b    #6,d1
  370.     bls    NoMove
  371.     subq.b    #6,d1
  372.     move.l    #$ffff,d0
  373.     divu    d1,d0
  374.     and.l    #$ffff,d0
  375.     moveq.l #0,d1
  376.     PEEKW    RPropSpecial+4,d1
  377.     divu    d0,d1
  378.     and.l    #$ffff,d1
  379.     mulu    #36,d1
  380.     add.l    #Entrys,d1
  381.     SADD    ITextList,a0
  382.     moveq.l #6-1,d2
  383.     move.l    (a0),a1
  384.     cmp.l    $c(a1),d1
  385.     beq    NoMove
  386. Move    move.l    (a0)+,a1
  387.     move.l    d1,$c(a1)
  388.     add.l    #36,d1
  389.     dbra    d2,Move
  390. EndMove bsr    RefreshNames
  391. NoMove    rts
  392.  
  393. ***    File-Namen ausgeben
  394.  
  395. RefreshNames
  396.     bsr    ClearRects
  397.     bsr    MakeLenght
  398.     SADD    ITextList,a0
  399.     moveq.l #6-1,d0
  400. MakeColors
  401.     move.l    (a0)+,a1
  402.     move.l    $c(a1),a2
  403.     SADD    EntryCols,a3
  404.     move.b    31(a2),d1
  405.     ext.w    d1
  406.     move.b    0(a3,d1.w),(a1)
  407.     dbra    d0,MakeColors
  408.     PEEKL    _ReqWindRast,a0
  409.     SADD    IText0,a1
  410.     moveq.l #0,d0
  411.     moveq.l #0,d1
  412.     CALLPC    _IntuitionBase,PrintIText
  413.     rts
  414.  
  415. EntryCols    dc.b    3,2,1,3,1,0
  416.  
  417. ***    Rechtecke löschen
  418.  
  419. ClearRects
  420.     PEEKL    _ReqWindRast,a1
  421.     moveq.l #0,d0
  422.     CALLPC    _GfxBase,SetAPen
  423.     SADD    ITextList,a2
  424.     moveq.l #47,d4
  425.     moveq.l #6-1,d5
  426. DoRem    move.l    (a2)+,a3
  427.     PEEKL    _ReqWindRast,a1
  428.     moveq.l #22,d0
  429.     move.l    $c(a3),a3
  430. MakeX    cmpi.b    #0,(a3)+
  431.     beq    XisOK
  432.     addq.w    #8,d0
  433.     cmpi.w    #260-8*8,d0
  434.     bls    MakeX
  435.     move.w    #260-8*8,d0
  436. XisOK    move.l    d4,d1
  437.     move.l    d1,d3
  438.     add.l    #9,d3
  439.     move.w    #260-1-7*8,d2
  440.     CALLSYS RectFill
  441.     add.l    #10,d4
  442.     dbra    d5,DoRem
  443. EndRem    rts
  444.  
  445. ***    Proportional-Gadget neu berechnen
  446.  
  447. RemakeProp
  448.     PEEKL    EntryCount,d0
  449.     cmpi.b    #6,d0
  450.     bls    NoRemakeProp
  451.     move.l    #$ffff,d1
  452.     mulu    #6,d1
  453.     divu    d0,d1
  454.     cmp.w    RPropSpecial+8(pc),d1
  455.     beq.s    NoRemakeProp
  456.     POKEW    d1,RPropSpecial+8
  457.     bsr    RefreshProp
  458. NoRemakeProp
  459.     rts
  460.  
  461. ***    Proportional-Gadget zeichnen
  462.  
  463. RefreshProp
  464.     SADD    RProp,a0
  465.     PEEKL    _ReqWindBase,a1
  466.     suba.l    a2,a2
  467.     CALLPC    _IntuitionBase,RefreshGadgets
  468.     rts
  469.  
  470. ***    String-Gadgets zeichnen
  471.  
  472. RefreshStrings
  473.     SADD    RDir,a0
  474.     PEEKL    _ReqWindBase,a1
  475.     suba.l    a2,a2
  476.     CALLPC    _IntuitionBase,RefreshGadgets
  477.     rts
  478.  
  479. ***    Verbindet Directory mit Name
  480.  
  481. JoinName
  482.     lea    DirBuffer,a0
  483.     lea    FileBuffer,a1
  484.     lea    DirFileBuffer,a2
  485. CopyDir move.b    (a0)+,(a2)+
  486.     cmpi.b    #0,-1(a2)
  487.     bne.s    CopyDir
  488.     suba.l    #1,a2
  489.     cmpa.l    #DirFileBuffer,a2
  490.     beq    JoinFile
  491.     cmpi.b    #58,-1(a2)
  492.     beq    JoinFile
  493.     cmpi.b    #47,-1(a2)
  494.     beq    JoinFile
  495.     move.b    #47,(a2)+
  496. JoinFile
  497.     move.b    (a1)+,(a2)+
  498.     cmpi.b    #0,-1(a2)
  499.     bne.s    JoinFile
  500.     rts
  501.  
  502. ***    Datei-Längen berechnen
  503.  
  504. MakeLenght
  505.     SADD    ITextList,a2
  506.     SADD    LTextList,a3
  507.     moveq.l #6-1,d3
  508. MakeL    move.l    (a3)+,a0
  509.     move.l    (a2)+,a4
  510.     move.l    $c(a4),a4
  511.     cmpi.b    #1,31(a4)
  512.     bne    MakeLDir
  513.     move.l    32(a4),d2
  514.     bsr    D2ToASC
  515.     bra    MakeDec
  516. MakeLDir
  517.     moveq.l #7-1,d4
  518. ClearSize
  519.     move.b    #32,(a0)+
  520.     dbra    d4,ClearSize
  521. MakeDec dbra    d3,MakeL
  522.     rts
  523.  
  524. ***    d2 in ASC wandeln
  525.  
  526. D2ToASC moveq    #6,d0
  527.     SADD    ASCTens,a1
  528.     move.l    a0,-(sp)
  529. ASCNext moveq.b #"0",d1
  530. ASCDec    addq.b    #1,d1
  531.     sub.l    (a1),d2
  532.     bcc.s    ASCDec
  533.     subq.b    #1,d1
  534.     add.l    (a1)+,d2
  535.     move.b    d1,(a0)+
  536.     dbra    d0,ASCNext
  537.     move.l    (sp)+,a0
  538.     moveq.l #5,d0
  539. ASCNill cmpi.b    #"0",(a0)
  540.     bne.s    ASCEnd
  541.     move.b    #32,(a0)+
  542.     dbra    d0,ASCNill
  543. ASCEnd    rts
  544.  
  545. ASCTens     dc.l    1000000,100000,10000,1000,100,10,1
  546.  
  547. ***    Library-Zeiger suchen und merken
  548.  
  549. OpenLibs
  550.     move.l    4,a6
  551.     lea    $17a(a6),a0
  552.     SADD    IntName,a1
  553.     CALLSYS FindName
  554.     POKEL    d0,_IntuitionBase
  555.     lea    $17a(a6),a0
  556.     SADD    DOSName,a1
  557.     CALLSYS FindName
  558.     POKEL    d0,_DOSBase
  559.     lea    $17a(a6),a0
  560.     SADD    GrafName,a1
  561.     CALLSYS FindName
  562.     POKEL    d0,_GfxBase
  563.     rts
  564.  
  565. IntName     INTNAME
  566. DOSName     DOSNAME
  567. GrafName    GRAFNAME
  568. _IntuitionBase    ds.l    1
  569. _DOSBase    ds.l    1
  570. _GfxBase    ds.l    1
  571.  
  572. ***    Border malen
  573.  
  574. MakeRBorder
  575.     PEEKL    _ReqWindRast,a0
  576.     SADD    RBorder0,a1
  577.     moveq.l #0,d0
  578.     moveq.l #0,d1
  579.     CALLPC    _IntuitionBase,DrawBorder
  580.     rts
  581.  
  582. ***    Data-Teil
  583.  
  584. ReqWindow    dc.w    160,21,320,158
  585.         dc.b    -1,-1
  586.         dc.l    8!$20!$40,$800!$1000!$10000,RGad0,0,0,0,0
  587.         dc.w    0,0,0,0,15
  588. _ReqWindBase    ds.l    1
  589. _ReqWindRast    ds.l    1
  590. _ReqWindUser    ds.l    1
  591.  
  592. RGad0        dc.l    RGad1
  593.         dc.w    20,47,240,10,0,1,1
  594.         dc.l    0,0,0,0,0
  595.         dc.w    "F0"
  596.         dc.l    0
  597. RGad1        dc.l    RGad2
  598.         dc.w    20,57,240,10,0,1,1
  599.         dc.l    0,0,0,0,0
  600.         dc.w    "F1"
  601.         dc.l    0
  602. RGad2        dc.l    RGad3
  603.         dc.w    20,67,240,10,0,1,1
  604.         dc.l    0,0,0,0,0
  605.         dc.w    "F2"
  606.         dc.l    0
  607. RGad3        dc.l    RGad4
  608.         dc.w    20,77,240,10,0,1,1
  609.         dc.l    0,0,0,0,0
  610.         dc.w    "F3"
  611.         dc.l    0
  612. RGad4        dc.l    RGad5
  613.         dc.w    20,87,240,10,0,1,1
  614.         dc.l    0,0,0,0,0
  615.         dc.w    "F4"
  616.         dc.l    0
  617. RGad5        dc.l    RCancel
  618.         dc.w    20,97,240,10,0,1,1
  619.         dc.l    0,0,0,0,0
  620.         dc.w    "F5"
  621.         dc.l    0
  622. RCancel     dc.l    RParent
  623.         dc.w    20,137,80,11,2,1,1
  624.         dc.l    RBorder2,RBorder4,RCancelText,0,0
  625.         dc.w    "CL"
  626.         dc.l    0
  627. RCancelText    dc.b    1,0,0,0
  628.         dc.w    40-6*4,2
  629.         dc.l    0,RCancelBytes,0
  630.         TEXT    RCancelBytes,"CANCEL"
  631. RParent     dc.l    ROK
  632.         dc.w    80+2*20,137,80,11,2,1,1
  633.         dc.l    RBorder2,RBorder4,RParentText,0,0
  634.         dc.w    "PT"
  635.         dc.l    0
  636. RParentText    dc.b    1,0,0,0
  637.         dc.w    40-6*4,2
  638.         dc.l    0,RParentBytes,0
  639.         TEXT    RParentBytes,"PARENT"
  640. ROK        dc.l    RProp
  641.         dc.w    2*80+3*20,137,80,11,2,1,1
  642.         dc.l    RBorder2,RBorder4,ROKText,0,0
  643.         dc.w    "OK"
  644.         dc.l    0
  645. ROKText     dc.b    1,0,0,0
  646.         dc.w    40-8*4,2
  647.         dc.l    0,ROKBytes,0
  648.         TEXT    ROKBytes,"CONTINUE"
  649. RProp        dc.l    RDir
  650.         dc.w    284,49,12,56,0,2,3
  651.         dc.l    RPropInfo,0,0,0,RPropSpecial
  652.         dc.w    "PR"
  653.         dc.l    0
  654. RPropInfo    ds.w    4
  655. RPropSpecial    dc.w    1!4!8,0,0,0,$ffff
  656.         ds.w    6
  657. RDir        dc.l    RFile
  658.         dc.w    21,28,278,8,0,1,4
  659.         dc.l    RBorder6,0,0,0,RDirSpecial
  660.         dc.w    "DC"
  661.         dc.l    0
  662. RDirSpecial    dc.l    DirBuffer,UndoBuffer
  663.         dc.w    0,81
  664.         ds.w    12
  665. RFile        dc.l    0
  666.         dc.w    21,118,278,8,0,1,4
  667.         dc.l    RBorder6,0,0,0,RFileSpecial
  668.         dc.w    0
  669.         dc.l    0
  670. RFileSpecial    dc.l    FileBuffer,UndoBuffer
  671.         dc.w    0,31
  672.         ds.w    12
  673.  
  674. RBorder0    dc.w    0,0            ;Borders für Fenster-
  675.         dc.b    2,0,0,3         ;rahmen
  676.         dc.l    RPairs0,RBorder1
  677. RPairs0     dc.w    319,0,0,0,0,156
  678. RBorder1    dc.w    0,0
  679.         dc.b    1,0,0,3
  680.         dc.l    RPairs1,RBorder8
  681. RPairs1     dc.w    0,157,319,157,319,1
  682. RBorder2    dc.w    0,0            ;Borders für Bool-Gads
  683.         dc.b    2,0,0,3
  684.         dc.l    RPairs24,RBorder3
  685. RBorder3    dc.w    0,0
  686.         dc.b    1,0,0,3
  687.         dc.l    RPairs35,0
  688. RBorder4    dc.w    0,0
  689.         dc.b    1,0,0,3
  690.         dc.l    RPairs24,RBorder5
  691. RBorder5    dc.w    0,0
  692.         dc.b    2,0,0,3
  693.         dc.l    RPairs35,0
  694. RPairs24    dc.w    79,0,0,0,0,9
  695. RPairs35    dc.w    0,10,79,10,79,1
  696. RBorder6    dc.w    -1,-1            ;Borders für Strings
  697.         dc.b    1,0,0,3
  698.         dc.l    RPairs6,RBorder7
  699. RPairs6     dc.w    279,0,0,0,0,8
  700. RBorder7    dc.w    -1,-1
  701.         dc.b    2,0,0,3
  702.         dc.l    RPairs7,0
  703. RPairs7     dc.w    0,9,279,9,279,1
  704. RBorder8    dc.w    280,47            ;Border für Prop-Gad
  705.         dc.b    1,0,0,3
  706.         dc.l    RPairs8,RBorder9
  707. RPairs8     dc.w    19,0,0,0,0,58
  708. RBorder9    dc.w    280,47
  709.         dc.b    2,0,0,3
  710.         dc.l    RPairs9,0
  711. RPairs9     dc.w    0,59,19,59,19,1
  712.  
  713. IText0        dc.b    1,0,1,0
  714.         dc.w    22,48
  715.         dc.l    0,0,IText1
  716. IText1        dc.b    1,0,1,0
  717.         dc.w    22,58
  718.         dc.l    0,0,IText2
  719. IText2        dc.b    1,0,1,0
  720.         dc.w    22,68
  721.         dc.l    0,0,IText3
  722. IText3        dc.b    1,0,1,0
  723.         dc.w    22,78
  724.         dc.l    0,0,IText4
  725. IText4        dc.b    1,0,1,0
  726.         dc.w    22,88
  727.         dc.l    0,0,IText5
  728. IText5        dc.b    1,0,1,0
  729.         dc.w    22,98
  730.         dc.l    0,0,LText0
  731. ITextList    dc.l    IText0,IText1,IText2,IText3,IText4,IText5
  732.  
  733. LText0        dc.b    2,0,1,0
  734.         dc.w    260-7*8,48
  735.         dc.l    0,LBytes0,LText1
  736.         TEXT    LBytes0,<"       ">
  737. LText1        dc.b    2,0,1,0
  738.         dc.w    260-7*8,58
  739.         dc.l    0,LBytes1,LText2
  740.         TEXT    LBytes1,<"       ">
  741. LText2        dc.b    2,0,1,0
  742.         dc.w    260-7*8,68
  743.         dc.l    0,LBytes2,LText3
  744.         TEXT    LBytes2,<"       ">
  745. LText3        dc.b    2,0,1,0
  746.         dc.w    260-7*8,78
  747.         dc.l    0,LBytes3,LText4
  748.         TEXT    LBytes3,<"       ">
  749. LText4        dc.b    2,0,1,0
  750.         dc.w    260-7*8,88
  751.         dc.l    0,LBytes4,LText5
  752.         TEXT    LBytes4,<"       ">
  753. LText5        dc.b    2,0,1,0
  754.         dc.w    260-7*8,98
  755.         dc.l    0,LBytes5,0
  756.         TEXT    LBytes5,<"       ">
  757. LTextList    dc.l    LBytes0,LBytes1,LBytes2,LBytes3,LBytes4,LBytes5
  758.  
  759. ***    Fehler
  760.  
  761. TableFull    dc.b    1,0,0,0
  762.         dc.w    140-21*4,0
  763.         dc.l    0,TFullBytes,0
  764.         TEXT    TFullBytes,<"MY FILE TABLE IS FULL">
  765.  
  766.     SECTION "Reserved",BSS
  767.  
  768. Entrys        ds.b    100*36
  769.         cnop    0,4
  770. FileInfo    ds.b    260
  771. DirBuffer    ds.b    82
  772. FileBuffer    ds.b    32
  773. DirFileBuffer    ds.b    80+30+1+1
  774. UndoBuffer    ds.b    82
  775.  
  776.     END
  777.  
  778.  
  779.